﻿using System;
using System.Collections.Generic;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Kaskelot.SP.Model.Contracts;
using Kaskelot.SP.Services;
using Stockholm.SOA.Kaskelot.WCF.DataContracts;

namespace Kaskelot.SP.UI.CONTROLTEMPLATES.Kaskelot.SP.UI.Forms
{
	public partial class LokalForm : BaseForm, IForm
	{
		public string Id { get; set; }
		public string ParentId { get; set; }
		public Lokal Current { get; set; }
		public string ForsamlingId { get; set; }

		protected void Page_Load(object sender, EventArgs e)
		{
			try
			{
				ByggnadService svc = new ByggnadService();

				if (this.Id != null)
				{
					this.Current = svc.GetLokal(new Guid(this.Id));
					if(Current.Valdistrikt != null)
						this.ForsamlingId = Current.Valdistrikt.ForsamlingId.ToString();
				}
				else
				{
					this.Current = new Lokal();
				}
			}
			catch (Exception ex)
			{
				//Logging
			}

			try
			{
				using (LookupService svc = new LookupService())
				{
					ByggnadSearchLookupResult bslr = svc.GetByggnadSearchLookupData();

					IList<ListItem> forsamlingar = new List<ListItem>();
					foreach (Forsamling f in bslr.Forsamlingar)
					{
						forsamlingar.Add(new ListItem() { Text = f.Namn, Value = f.Id.ToString() });
					}
					ForsamlingRepeater.DataSource = forsamlingar;
					ForsamlingRepeater.DataBind();
				}

                using (BemanningService svc = new BemanningService())
				{
					if (Current.ValdistriktId != null)
					{
                        ValdistriktSearchParameters vsp = new ValdistriktSearchParameters()
                        {
                            ForsamlingId = new Guid(ForsamlingId),
                            SelectedValdistriktId = Current.ValdistriktId,
                            EndastOkopplade = true
                        };
                        IEnumerable<ValdistriktSearchResult> v = svc.ValdistriktSearch(vsp);
						//var v = svc.GetValdistrikt(new Guid(ForsamlingId));
						IList<ListItem> valdistrikt = new List<ListItem>();

						foreach (ValdistriktSearchResult d in v)
						{
							valdistrikt.Add(new ListItem() { Text = d.ValdistriktNamn, Value = d.ValdistriktId });
						}

						ValdistriktRepeater.DataSource = valdistrikt;
						ValdistriktRepeater.DataBind();
					}
					else
					{
						IList<ListItem> valdistrikt = new List<ListItem>();
						valdistrikt.Add(new ListItem { Text = "Placeholder", Value = "Placeholder" });
						ValdistriktRepeater.DataSource = valdistrikt;
						ValdistriktRepeater.DataBind();
					}
				}
			}
			catch (Exception ex)
			{
				//Logging
			}
		}
	}
}
